home *** CD-ROM | disk | FTP | other *** search
- /*** File: "GestisciElOrd_v00.h"
- *
- * Versione 00. Del 22-09-94.
- * Scritto da Cadili Francesco.
- *
- * Gestisce un elenco di dati.
- *
- ****************************************************************/
- #ifndef __GestisciElOrd__
- #define __GestisciElOrd__
- #ifndef __Cstring_P__
- #include "Cstring_P_v32.h"
- #endif
- #ifndef __CGestisciTE__
- #include "CGestisciTE_v02.h"
- #endif
- #include <TextEdit.h>
- #include <Dialogs.h>
- #include <QuickDraw.h>
- #include <Controls.h>
-
- class CdataDescRec
- {
- public:
- short fontNum;
- short fontSize;
- short dim;
- Str255 title;
- short fontTitle;
- short sizeTitle;
- Boolean canModify;
- CGestisci_TE *TEH;
-
- /*** constructor
- *
- ****/
- CdataDescRec(void);
-
- /*** destructor
- *
- ****/
- ~CdataDescRec(void);
- };
-
- class CGestisciElOrd
- {
- protected:
- DialogPtr theDialog; // il puntatore al dialog che contiene i campi;
- RGBColor backGround; // il colore di BackGround;
- CGestisci_TE *numerazione; // il campo usato per la numerazione;
- short linee; // il numero di linee del campo textEdit;
- Boolean hasNumberField; // se ha il campo numerazione;
- CGestisci_TE *editLine; // usato localmente per modificare i dati;
- short fieldNumWidth; // l'ampiezza del campo "numerazione"
- short actNumSet; // il numero attuale cambiato
- short **num; // il campo che contiene la numerazione
- short maxNumData; // la dimensione dell'array num.
- short nField; // descrittore dei campi elenco
- CGestisci_TE *scrollTEH;
- CdataDescRec ***descField;
-
- /*** "InitData(textFont, textHeight)"
- *
- * Inizializza i dati relativi al DLOG.
- * (Presuppone che i primi dati della struttura globale
- * siano presenti).
- *
- * Par INPUT: 'textFont' la fonte del campo text edit,
- * 'textHeight' l'altezza del campo text edit.
- * Val OUTPUT: TRUE se tutto ok, FALSE altrimenti.
- *
- ****/
- int InitData(short fontNum, short fontSize, Boolean hasScroll);
-
- /*** inizializzaNumerazione()
- *
- * inizializza la numerazione.
- * per ora presuppone che il campo text edit sia vuoto
- * (la prima parte dell'array costituisce la mascera per la
- * seconda parte) !!!
- *
- ***/
- Boolean inizializzaNumerazione(void);
-
- /*** azzeraNumerazione()
- *
- * Azzera l'array della numerazione.
- *
- ***/
- void azzeraNumerazione(void);
-
- /*** sostituisciNumerazione()
- *
- * Presuppone che il campo textEdit sia vuoto.
- *
- ***/
- void sostituisciNumerazione(void);
-
- /*** scambiaValori(numSet)
- *
- * Presuppone che il campo textEdit sia vuoto.
- *
- ***/
- void scambiaValori(void);
-
- /*** scambiaValArray(array, pos1, pos2);
- *
- * Scambia i valori contenuti nell'array nelle posizioni "pos1" e "pos2".
- *
- ***/
- void scambiaValArray(short *array, short pos1, short pos2);
-
- /*** Riscrivi(num, pos)
- *
- * Riscrive i dati nella posizione "num".
- *
- ***/
- void Riscrivi(short *num, short pos);
-
- /*** insertEl(num)
- *
- * Riscrive i dati nella posizione "num".
- *
- ***/
- void insertEl(short pos);
-
- /*** CancellaEl(num)
- *
- * Riscrive i dati nella posizione "num".
- *
- ***/
- void CancellaEl(short pos);
-
- /*** modifyData()
- *
- * Permette la modifica dei dati
- *
- ***/
- void modifyData(EventRecord *theEvent);
-
- /*** sostituisciDato()
- *
- * Permette la modifica dei dati
- *
- ***/
- Boolean sostituisciDato(void);
-
- /*** inserisce un carattere
- *
- ****/
- void insertChar(EventRecord *theEvent);
-
- /*** "showActSel()"
- *
- * mostra la selezione attuale
- *
- ***/
- void showActSel(void);
-
- public:
- short TEitem; // il numero di item del User Item relativo al Text Edit;
- Boolean canModify; // se può modificare i dati;
- short titoloScelto; // il titolo scelto.
-
- /*** costructor
- *
- ***/
- CGestisciElOrd(void);
-
- /*** costructor
- *
- ***/
- ~CGestisciElOrd(void);
-
- /*** result = Alloca(theDialog, TEitem, &backGround, nField, descField, fontNum, sizeNum, canModify)
- *
- * Alloca la struttura dati "gestElOrdRec" nello Heap.
- *
- * Par INPUT: 'theDialog' il puntatore al dialog,
- * 'TEitem' il numero di item del campo text edit,
- * 'CTRLitem' il numero di item del campo di scroll,
- * '*backGround' lo sfondo del campo text edit,
- * 'textFont' la fonte del campo text edit,
- * 'textHeight' l'altezza del campo text edit.
- * 'maxNumData' il numero massimo di campi ammassi.
- * Val OUTPUT: il puntatore alla struttura dati se tutto ok, NULL altrimenti.
- *
- ***/
- Boolean IGestisciElOrd( DialogPtr theDialog, short TEitem,
- RGBColor *backGround, short fontNum,
- short fontSize, short nField,
- CdataDescRec ***descField, Boolean canModify,
- Boolean hasScroll, Boolean hasNumberField);
-
- /*** Dispose(&elOrdHdl)
- *
- * Dealloca la struttura dati "dataHdl".
- * Nota: da chiamare prima della deallocazione del
- * dialog (**elOrdHdl)->theDialog.
- *
- * Par INPUT: '*elOrdHdl' l' Handle del dialog.
- * Val OUTPUT: 'elOrdHdl' è posto a NULL.
- ****/
- void Dispose(void);
-
- /*** "listaFont(elOrdHdl)"
- *
- * Gestisce l'updateEvt nei campi definiti come "user"
- *
- * Par INPUT: 'elOrdHdl' il puntatore alla struttura dati attuale,
- *
- ************************************************************************/
- void updateEvt(void);
-
- /*** "disabilita(elOrdHdl, &theEvent)"
- *
- * Gestisce i click nella scroll Bar.
- *
- * Non tratta il doppio click e lo scroll mentre il bottone é abbassato.
- *
- *****************************************************************************/
- void disabilita();
-
- /*** "abilita(elOrdHdl, &theEvent)"
- *
- * Gestisce i click nella scroll Bar.
- *
- * Non tratta il doppio click e lo scroll mentre il bottone é abbassato.
- *
- * Par INPUT: 'elOrdHdl' il puntatore alla struttura dati attuale,
- * 'theEvent' il puntatore al record dell'evento attuale;
- ***/
- void abilita(void);
-
- /*** "KeyDown(elOrdHdl, &theEvent)"
- *
- * Gestisce i click nella scroll Bar.
- *
- * Non tratta il doppio click e lo scroll mentre il bottone é abbassato.
- *
- * Par INPUT: 'elOrdHdl' il puntatore alla struttura dati attuale,
- * 'theEvent' il puntatore al record dell'evento attuale;
- ***/
- Boolean KeyDown(EventRecord *theEvent);
-
- /*** "ClickInElOrd(elOrdHdl, &theEvent)"
- *
- * Gestisce i "mouse Event" nel campo "ElOrd".
- * L' attivazione/disabilitazione del bottone ok
- * è gestita da questa procedura.
- *
- * Par INPUT: 'elOrdHdl' il puntatore alla struttura dati attuale,
- * 'theEvent' il puntatore al record dell'evento attuale.
- ***/
- void gestClick(EventRecord *theEvent);
-
- /*** "TEidle(elOrdHdl)"
- *
- * Gestisce i click nella scroll Bar.
- *
- * Gestisce il blink sul campo selezionato.
- *
- * Par INPUT: 'elOrdHdl' il puntatore alla struttura dati attuale,
- ***/
- void TEidle(void);
-
- /****
- * sostituisciTesto_gestDLOG(elOrdHdl, str, len);
- *
- * inserisce del testo nel textEdit corrente
- *
- ***/
- Boolean sostituisciTesto(short nEl, Cstring_P *dataStr);
-
- /****
- * cancellaTesto(elOrdHdl);
- *
- * inserisce del testo nel textEdit corrente
- *
- ***/
- Boolean cancellaTesto(void);
-
- /****
- * aggiungiTesto(elOrdHdl, str, len);
- *
- * inserisce del testo nel textEdit corrente
- *
- ***/
- Boolean aggiungiTesto(short nEl, Cstring_P *dataStr);
- };
- #endif